Controllo MQTT pianificato
Il controllo MQTT programmato è destinato a messaggi pianificati in anticipo. Per il controllo dal vivo, vedi invece Controllo MQTT dal vivo.
Questa guida ti aiuterà a configurare MQTT sul tuo SmartgridOne Controller per controllare e monitorare da remoto le installazioni di batterie e pannelli solari.
Cosa ti serve
- SmartgridOne Controller con connettività internet.
- Credenziali MQTT: queste possono essere richieste inviando un'email a support@eniris.be.
- Ambiente di sviluppo Python (o qualsiasi altro client MQTT). Questa guida utilizza un esempio di base scritto in Python per farti iniziare con MQTT e l'invio di comandi. Raccomandiamo di usare Python per la facilità d'uso, ma è supportato qualsiasi altro client MQTT.
Informazioni extra
MQTT è un protocollo di comunicazione veloce su internet. È un sistema di messaggistica publish/subscribe, che consente una connessione diretta tra la tua macchina e il SmartgridOne Controller. I tuoi beni sono classificati in gruppi di solare, batteria, veicoli elettrici e HVAC. Al momento, questa integrazione consente il controllo per gruppo, non per dispositivo.
Configurazione iniziale (Punto di partenza per i nuovi utenti)
Ho un SmartgridOne Controller che vorrei configurare per il controllo remoto MQTT.
1. Controlla la tua rete
Assicurati che la tua rete consenta il traffico mqtt sulla porta 1883. Puoi farlo usando il comando:
nc -zv mqtt.eniris.be 1883
Quando questo comando non è disponibile, puoi alternativamente scaricare ed eseguire questo codice python.
In caso di dubbi, consulta il tuo ingegnere di rete o usa temporaneamente l'hotspot 4G/5G del tuo telefono quando si verificano errori di connessione.
Quando la porta 1883 non è accessibile dalla tua rete, offriamo un backup sulla porta 80. Questo può essere configurato nel tuo client MQTT in un passaggio successivo di questo manuale.
2. Aggiungi i tuoi dispositivi
Accedi all'interfaccia di commissioning e assicurati che i dispositivi siano aggiunti al SmartgridOne Controller.
3. Aggiungi il segnale esterno MQTT



4. Abilita il segnale remoto MQTT
Seleziona tutti i dispositivi che desideri includere nel controllo remoto MQTT.

5. Il segnale remoto è stato aggiunto
L'interfaccia di controllo remoto MQTT è stata ora attivata sul SmartgridOne Controller.
Siamo ora pronti a inviare alcuni comandi di base utilizzando un semplice esempio. La colonna Stato ti indica se un comando è attivo.
Script demo Python
Un buon punto di partenza sarebbe testare la tua nuova integrazione con un semplice esempio.
Questo codice di test svolge un lavoro semplice di invio continuo del seguente programma:
- Batteria: Carica a 5 kW per 15 minuti ogni 10 minuti
- Solare: Imposta la potenza a 0 kW per un'ora ogni 30 minuti
Il SmartgridOne Controller risponde con un messaggio di riconoscimento contenente l'identificatore unico del programma, o un messaggio di errore.
Quindi recuperiamo il programma successivo per entrambi i tipi di dispositivo, confermando che il comando è stato eseguito con successo.
Per favore scarica il file qui sotto nel tuo IDE Python preferito. Compila il tuo numero di serie e le credenziali MQTT ed esegui lo script:
Quando sopra è riuscito, puoi continuare ad inviare altri tipi di messaggi. Tutti i messaggi sono descritti qui sotto.
Documentazione MQTT per l'invio di comandi
Questa sezione dettaglia il formato dei messaggi MQTT e i requisiti del payload per impostare il controllo programmato dei dispositivi all'interno della rete del SmartgridOne Controller.
Argomenti MQTT
- Argomento di iscrizione:
standard1/rp_one_s/remoteScheduleMetrics/<controller SN>
- Argomento di feedback:
standard1/outbound/remoteScheduleMetrics/feedback/<controller SN>
Dove <controller SN>
deve essere sostituito con il numero di serie effettivo del SmartgridOne Controller che intendi controllare.
Tipi di messaggi MQTT
1. Imposta programma (set_schedule
)
Crea un nuovo programma per un tipo di dispositivo.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "set_schedule",
"fields": {
"device_type": "<Device Type>",
"node_id": "<Node ID>" (Opzionale),
"start_time": <Unix Timestamp>,
"end_time": <Unix Timestamp>,
"policy": "<Policy>",
"power_setpoint_w": <Setpoint in watts>,
"remove_overlap": <True/False> (Opzionale) (default=False),
"tag": <Tag String> (Opzionale) (default=None),
}
}
Risposta (Successo):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "set_schedule_ack",
"state": {
"schedule_id": <Schedule ID>,
"deleted_ids": <Schedulde IDs deleted if remove_overlap=True>
"tag": <Tag String> (default=None),
},
"responseCode": 0
}
}
2. Imposta programmi (set_schedules
)
Crea più nuovi programmi.
{
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"time": <Unix Timestamp>,
"message_type": "set_schedules",
"fields":
"0": {
"device_type": "<Device Type>",
"node_id": "<Node ID>" (Opzionale),
"start_time": <Unix Timestamp>,
"end_time": <Unix Timestamp>,
"policy": "<Policy>",
"power_setpoint_w": <Setpoint in watts>,
"remove_overlap": <True/False> (Opzionale) (default=False),
},
"1": {
"device_type": "<Device Type>",
"node_id": "<Node ID>" (Opzionale),
"start_time": <Unix Timestamp>,
"end_time": <Unix Timestamp>,
"policy": "<Policy>",
"power_setpoint_w": <Setpoint in watts>,
"remove_overlap": <True/False> (Opzionale) (default=False),
},
...
}
Risposta (Successo):
{
"requestTime": <Unix Timestamp>,
"time": <Unix Timestamp>,
"siteNodeId": "<Controller SN>_site_0",
"data": {
"message_type": "set_schedules_ack",
"state": {
"schedule_ids": <Schedule IDs>,
"deleted_ids": <Schedulde IDs deleted if remove_overlap=True>
},
"responseCode": 0
}
}